package cn.iocoder.yudao.module.erp.controller.admin.stock.goods.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;

@Schema(description = "管理后台 - 物品新增/修改 Request VO")
@Data
public class GoodsSaveReqVO {

    @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "29312")
    private Long id;

    @Schema(description = "名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三")
    @NotEmpty(message = "名字不能为空")
    private String name;

    @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "编号不能为空")
    private String code;

    @Schema(description = "物品描述", example = "你猜")
    private String description;

    @Schema(description = "规格型号")
    private String models;

    @Schema(description = "品牌")
    private String brand;

    @Schema(description = "类目名称", example = "王五")
    private String categoryName;

    @Schema(description = "类目编号")
    private String categoryCode;

    @Schema(description = "类目id")
    @NotNull(message = "类目id不能为空")
    private Long categoryId;

    @Schema(description = "保质期开关", example = "0")
    private Boolean expirationFlag;

    @Schema(description = "保质期")
    private Integer expirationDay;

    @Schema(description = "提前报警天数")
    private Integer alarmDay;

    @Schema(description = "采购价格", example = "25231")
    private BigDecimal orderPrice;

    @Schema(description = "销售价格", example = "8376")
    private BigDecimal salePrice;

    @Schema(description = "条形码")
    private String proBarCode;

    @Schema(description = "图片")
    private String image;

    @Schema(description = "库存上限")
    private BigDecimal maxQuantity;

    @Schema(description = "库存下限")
    private BigDecimal minQuantity;

    @Schema(description = "制造商型号")
    private String produceModel;

    @Schema(description = "采购提前期")
    private String purchaseLead;

    @Schema(description = "备注")
    private String remarks;

    @Schema(description = "附件")
    private String source;

    @Schema(description = "单位")
    private String unit;

    @Schema(description = "多单位开关", example = "1")
    private Integer unitFlag;

    @Schema(description = "英文名")
    private String nameEn;

    @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
    @NotNull(message = "状态不能为空")
    private Integer status;

    @Schema(description = "仓库id")
    @NotNull(message = "仓库id不能为空")
    private Long warehouseId;

}